package com.wxt.blog.dao;

import com.wxt.blog.entity.Blog;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BlogDao {
    List<Blog> findAll();

    Blog findById(int id);

    void insert(Blog blog);

    List<Blog> findByUserId(int userId);

    void incrementViewCount(int id);

    int delete(int id);

    int update(Blog blog);

    int checkLikeExists(@Param("blogId") int blogId, @Param("userId") int userId);

    void addLike(@Param("blogId") int blogId, @Param("userId") int userId);

    void incrementLikeCount(@Param("blogId") int blogId);

    int getLikeCount(@Param("blogId") int blogId);

    void removeLike(@Param("blogId") int blogId, @Param("userId") int userId);

    void updateLikeCount(@Param("blogId") int blogId, @Param("delta") int delta);

    List<Blog> search(@Param("keyword") String keyword);
}